<?php 
//-----------------------------------------------------------------------------------------------
// Funktion um die DB-Eintraege zu pruefen => SQL Injektions
//-----------------------------------------------------------------------------------------------
function clean_it($dirty){ 
    
     // Auswirkungen von magic_quotes_gpc zuruecksetzen, wenn ON
    if (get_magic_quotes_gpc()) {
        $clean = mysql_real_escape_string(stripslashes(htmlspecialchars($dirty)));
    }else{
        $clean = mysql_real_escape_string(htmlspecialchars($dirty));
    }
    return $clean;
}

// Funktion zum Fehler ausgeben
function get_error($var){
	$fehler = "<div class=\"error\"><h2>Error ...</h2>\n<p>".$var."</p>\n</div>\n";
	return $fehler; 
}

// Funktion um no error ausgeben
function get_okay($var){
 	$fehler = "<div class=\"no_error\"><h2>Prima ...</h2>\n<p>".$var."</p>\n</div>\n";
	return $fehler;
}
//-----------------------------------------------------------------------------------------------
// Blaetterfunktion => Seitennavigation
//-----------------------------------------------------------------------------------------------
function get_navi($go, $total, $pfad, $ausgabe = false, $ende = 10, $p = 3){

	//-----------------------------------------------------------------------------------------------
	// $pfad 					=> Dateipfad
	// $total 					=> Anzahl der in DB
	// $ende 					=> Anzahl der Datensaetze die Pro Seite angezeigt werden sollen
	// $p 						=> Anzahl der Links die in der Seitenavigation ausgegeben werden
	// $ausgabe = false			=> Seitennavigation NICHT ausgeben oberhalb der DB Abfrage
	//-----------------------------------------------------------------------------------------------
	$seiten = ceil($total / $ende);     // Berechnet die Seitenanzahl insgesamt
	
	if(!isset($go)){ // korrigieren der aktuellen Seite
	    $go = 1;             // Sofern $go nicht uebergeben wurde
	}elseif($go <= 0 || $go > $seiten){
	    $go = 1;         // Variable definieren
	}else{ // Wenn Obiges nicht zutraf
	    $go = clean_it($go); // Variable definieren
	}

	$links = array(); // Linkkette bilden

	// Seite die vor der aktuellen Seite kommt definieren
	if(($go - $p) < 1){ $davor = $go - 1;  }else { $davor = $p; }            

	// Seite die nach der aktuellen Seite kommt definieren
	if(($go + $p) > $seiten){ $danach = $seiten - $go; }else{ $danach = $p; }   
       
	$off = ($go - $davor); // Variable definieren   
	                
	if ($go- $davor > 1){ // Link definieren => Zur Erste Seite springen         
	    $first = 1;
	       $links[] = "<a href=\"".$pfad."".$first."\" title=\"Zur ersten Seite springen\">&laquo; Erste ...</a>\n";      
	}      
	
	if($go != 1){ // Link definieren => eine Seite zurueck blaettern          
	    $prev = $go-1;
	    $links[] = "<a href=\"".$pfad."".$prev."\" title=\"Eine Seite zurueck blaettern\">&laquo;</a>\n";     
	}   
	       
	for($i = $off; $i <= ($go + $danach); $i++){ // einzelne Seitenlinks erzeugen
	
	  if ($i != $go){  // Link definieren            
	  
	        $links[] = "<a href=\"".$pfad."".$i."\">$i</a>\n";
	        
	  }elseif($i == $seiten) { // aktuelle Seite, ein Link ist nicht erforderlich             
	        
	        $links[] = "<span class=\"current\">$i</span>\n";  
	        
	  }elseif($i == $go){ // aktuelle Seite, ein Link ist nicht erforderlich             
	  
	        $links[] = "<span class=\"current\">$i</span>\n";
	        
	  } // close if $i      
	}// close for                
	
	if($go != $seiten){ // Link definieren => eine Seite weiter blaettern       
	    $next = $go+1;
	    $links[] = "<a href=\"".$pfad."".$next."\" title=\"Eine Seite weiter blaettern\">&raquo;</a>\n";
	}      
	    
	if($seiten - $go - $p > 0 ){ // Link definieren => Zur letzen Seite springen   
	    $last = $seiten; 
	    $links[] = "<a href=\"".$pfad."".$last."\" title=\"Zur letzten Seite springen\">... Letzte &raquo;</a>\n";
	}      
	
	$start = ($go-1) * $ende;             // Berechne den Startwert fuer die DB

	$link_string = implode(" ", $links); // Zusammenfuegen der einzelnen Links zu einem String

	// -------------------------------------- Seitennavigation ausgeben ----------------------------
	
	if($ausgabe == true){
		 echo "<div id=\"navigation\">\n";
		
		 echo "<span class=\"pages\">Seite $go von $seiten</span>\n";
		
		 echo $link_string; // Ausgabe der Seitennavigation
		    
		 echo "</div> \n";
	} //close ausgabe
	// -------------------------------------- Seitennavigation ende -------------------------------- 

  return array($start, $ende);
 
} // close function

//-----------------------------------------------------------------------------------------------
// BB Code funktion
//-----------------------------------------------------------------------------------------------
function bbcode($bb){
	$php_header = '<div class="php">';
	$php_footer = '</div>';
	
 	// PHP Code zwischenspeichern
      $c = md5(time());
      preg_match_all("/\[php\](.*?)\[\/php\]/si", $bb, $results);
      for($i=0;$i<count($results[1]);$i++) {
          $bb = str_replace($results[1][$i], $c.$i.$c, $bb);
      }

	// Formatierung
	$search[] = '[b]';
	$search[] = '[/b]';
	$search[] = '[i]';
	$search[] = '[/i]';
	$search[] = '[u]';
	$search[] = '[/u]';
	$search[] = '[quote]';
	$search[] = '[/quote]';
	$search[] = '[left]';
	$search[] = '[/left]';
	$search[] = '[right]';
	$search[] = '[/right]';
	$search[] = '[center]';
	$search[] = '[/center]';
	$search[] = '[code]0[/code]';

	$replace[] = '<b>';
	$replace[] = '</b>';
	$replace[] = '<i>';
	$replace[] = '</i>';
	$replace[] = '<u>';
	$replace[] = '</u>';
	$replace[] = '<blockquote>';
	$replace[] = '</blockqoute>';
	$replace[] = '<div style="text-align: left">';
	$replace[] = '</div>';
	$replace[] = '<div style="text-align: right">';
	$replace[] = '</div>';
	$replace[] = '<div style="text-align: center">';
	$replace[] = '</div>';
	$replace[] = '<pre class="code">';
	$replace[] = '</pre>';

	$bb = str_replace($search, $replace, $bb);
	
	$search = array();
	$replace = array();
	
	$bb = preg_replace("/\[color=(.*)\](.*)\[\/color\]/Usi", "<span color=\"\1\">\2</span>", $bb);
	$bb = preg_replace("/\[email=(.*)\](.*)\[\/email\]/Usi", "<a href=\"mailto:\1\">\2</a>", $bb); 	
	$bb = preg_replace("/\[url=(.*)\](.*)\[\/url\]/Usi", "<a href=\"\1\">\2</a>", $bb); 	
	$bb = preg_replace("/\[img\](.*)\[\/img\]/Usi", "<img src=\"\1\" alt=\"\" \>", $bb); 	

	$bb = nl2br($bb);

// PHP Code highlighten	
 for($i=0;$i<count($results[1]);$i++) {
          ob_start();
          highlight_string(trim(html_entity_decode($results[1][$i])));
          $ht = ob_get_contents();
          ob_end_clean();
          
          $all = $php_header.$ht.$php_footer;

   		  $bb = preg_replace("/\[php\]".$c.$i.$c."\[\/php\]/siU", $all, $bb);       
 }

// Video => parse Code
$video = array();

preg_match_all("/\[video\](.*)\[\/video\]/siU", $bb, $video);

foreach($video[0] as $key => $value){
    $bb = preg_replace('#'.preg_quote($value, '#').'#','[video]'.$key.'[/video]',$bb,1);
    $video[1][$key] = html_entity_decode($video[1][$key]);
} 

foreach($video[1] as $key => $value)
    $bb = preg_replace("/\[video\]".$key."\[\/video\]/siU", $value, $bb); 
    
	return $bb;
}

function get_bbcode($wo){ // BBCode Funktion

	$bb = '<div class="bbcode">';
	$bb.= '<img onclick="add(\'[b] [/b]\');" style="cursor:pointer" src="news/images/bold.png" alt="fett" title="fett" />';
	$bb.= '<img onclick="add(\'[i] [/i]\');" style="cursor:pointer" src="news/images/italic.png" alt="krusiv" title="krusiv" />';
	$bb.= '<img onclick="add(\'[u] [/u]\');" style="cursor:pointer" src="news/images/underline.png" alt="unterstrichen" title="unterstrichen" />';
		
	$bb.= '<img onclick="add(\'[left] [/left]\');" style="cursor:pointer" src="news/images/left.png" alt="links ausrichten" title="links ausrichten" />';
	$bb.= '<img onclick="add(\'[center] [/center]\');" style="cursor:pointer" src="news/images/center.png" alt="zentriert" title="zentriert" />';
	$bb.= '<img onclick="add(\'[right] [/right]\');" style="cursor:pointer" src="news/images/right.png" alt="rechts ausrichten" title="rechts ausrichten" />';

	$bb.= '<img onclick="add(\'[url=] [/url]\');" style="cursor:pointer" src="news/images/link.png" alt="Link einfuegen" title="Link einfuegen"/>';
	$bb.= '<img onclick="add(\'[email=] [/email]\');" style="cursor:pointer" src="news/images/email.png" alt="Email Adresse einfuegen" title="Email Adresse einfuegen" />';
	$bb.= '<img onclick="add(\'[img] [/img]\');" style="cursor:pointer" src="news/images/img.png" alt="Bild einfuegen" title="Bild einfuegen" />';

	if($wo != "comi"){
		$bb.= '<img onclick="add(\'[video] [/video]\');" style="cursor:pointer" src="news/images/video.png" alt="Video Einfuegen" title="Video Einfuegen" />';
	}
	
	$bb.= '<img onclick="add(\'[quote] [/quote]\');" style="cursor:pointer" src="news/images/zitat.png" alt="Zitat einfuegen" alt="Zitat einfuegen" />';
	$bb.= '<img onclick="add(\'[code]1[/code]\');" style="cursor:pointer" src="news/images/code.png" alt="Code einfuegen" title="Code einfuegen" />';
	$bb.= '<img onclick="add(\'[php] [/php] \');" style="cursor:pointer" src="news/images/php.png" alt="PHP Code einfuegen" title="PHP Code einfuegen" />';
	
	$bb.= '</div>';
	
	echo $bb;	
}

function check_email($email)
{        
    if(preg_match('/^[^\x00-\x20()<>@,;:\\".[\]\x7f-\xff]+(?:\.[^\x00-\x20()<>@,;:\\".[\]\x7f-\xff]+)*\@[^\x00-\x20()<>@,;:\\".[\]\x7f-\xff]+(?:\.[^\x00-\x20()<>@,;:\\".[\]\x7f-\xff]+)+$/i', $email)) return true;
    
    return false;
} 
?>